Consolidated data services apparatus and method

ABSTRACT

An apparatus for consolidated data services comprising a plurality of devices, a plurality of data services and a content application programming interface (API). A user API provides user identification for each of the plurality of devices using one or more of a plurality of user API methods. A feedback API configured to receive data from each of the plurality of devices that identifies media content that was delivered to the plurality of devices using one or more of a plurality of feedback API methods. A device API configured to provide a client system to one or more of the plurality of devices using one or more of a plurality of device API methods. A web service consolidator coupled to the content API, the user API, the feedback API, the device API, the update API, a plurality of data services and the plurality of devices through the communications media.

TECHNICAL FIELD

The present disclosure relates to data services, and more particularlyto a web services apparatus and method that allows diverse web servicesto be consolidated through a common web services platform.

BACKGROUND OF THE INVENTION

The Internet is commonly used to provide access to data servicesproviders. The ease for establishing a connection with a data serviceprovider over the Internet has resulted in data service providers havingdedicated service portals. However, because of the large number ofdifferent data service providers, data service users have to becomeproficient in using the interface for each different data serviceprovider, which leads to mistakes and errors. In addition, peripheralsand equipment must be configured to interface with different dataservices, which also leads to mistakes and errors.

SUMMARY OF THE INVENTION

An apparatus for consolidated data services comprising a plurality ofdevices, a plurality of data services and a content applicationprogramming interface (API). A user API provides user identification foreach of the plurality of devices using one or more of a plurality ofuser API methods, wherein each of the user API methods includes arequired signature parameter. A feedback API configured to receive datafrom each of the plurality of devices that identifies media content thatwas delivered to the plurality of devices using one or more of aplurality of feedback API methods. A device API configured to provide aclient system to one or more of the plurality of devices using one ormore of a plurality of device API methods. An update API configured toprovide an updated client system to one or more of the plurality ofdevices using one more of a plurality of update API methods. A webservice consolidator coupled to the content API, the user API, thefeedback API, the device API, the update API, a plurality of dataservices and the plurality of devices through the communications media,the web service consolidator configured to control interactions betweenthe content API, the user API, the feedback API, the device API, theupdate API, a plurality of data services and the plurality of devices.

Other systems, methods, features, and advantages of the presentdisclosure will be or become apparent to one with skill in the art uponexamination of the following drawings and detailed description. It isintended that all such additional systems, methods, features, andadvantages be included within this description, be within the scope ofthe present disclosure, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

Aspects of the disclosure can be better understood with reference to thefollowing drawings. The components in the drawings are not necessarilyto scale, emphasis instead being placed upon clearly illustrating theprinciples of the present disclosure. Moreover, in the drawings, likereference numerals designate corresponding parts throughout the severalviews, and in which:

FIG. 1 is a diagram of a system for a consolidated data serviceapparatus and method that allow diverse data services, such as musicdata services, photo data services, video data services and socialnetworking data services, to be provided using common applicationprogramming interfaces (APIs);

FIG. 2 is a diagram of an algorithm for providing consolidated dataservice delivery in accordance with an exemplary embodiment of thepresent disclosure; and

FIG. 3 is a diagram of an algorithm for providing consolidated dataservice delivery for a user device in accordance with an exemplaryembodiment of the present disclosure.

DETAILED DESCRIPTION OF THE INVENTION

In the description that follows, like parts are marked throughout thespecification and drawings with the same reference numerals. The drawingfigures might not be to scale and certain components can be shown ingeneralized or schematic form and identified by commercial designationsin the interest of clarity and conciseness.

FIG. 1 is a diagram of a system 100 for a consolidated data serviceapparatus and method that allow diverse data services, such as musicdata services, photo data services, video data services and socialnetworking data services, to be provided using common applicationprogramming interfaces (APIs). System 100 can be implemented in hardwareor a suitable combination of hardware and software, and can be one ormore APIs operating on general and special purpose processing platforms,such as personal computers, tablet computers, telephones, televisions,stereo systems, or other suitable systems.

As used herein, “hardware” can include a combination of discretecomponents, an integrated circuit, an application specific integratedcircuit, a field programmable gate array, or other suitable hardware. Asused herein, “software” can include one or more objects, agents,threads, lines of code, subroutines, separate software applications, twoor more lines of code or other suitable software structures operating intwo or more software applications or on two or more processors, or othersuitable software structures. In one exemplary embodiment, software caninclude one or more lines of code or other suitable software structuresoperating in a general purpose software application, such as anoperating system, and one or more lines of code or other suitablesoftware structures operating in a specific purpose softwareapplication. As used herein, the term “coupled” and its cognate termssuch as “couples” or “couple,” can include a physical connection (suchas a wire, optical fiber, or a telecommunications medium), a virtualconnection (such as through randomly assigned memory locations of a datamemory device or a hypertext transfer protocol (HTTP) link), a logicalconnection (such as through one or more semiconductor devices in anintegrated circuit), or other suitable connections. In one exemplaryembodiment, a communications medium can be a network or other suitablecommunications media.

System 100 includes consolidated web service 102, which coordinates userAPI 116, content API 104, feedback API 106, update API 108 and deviceAPI 110, and which interfaces with devices 112 a through 112 n throughcommunications media 120, and with data services 114 a through 114 nthrough communications media 122. Communications media 120 and 122 canseparate communications media such as dedicated high-speed dataconnections, or can the same communications media or combinations ofcommunications media, and can be a wire line communications medium ormedia such as the public switched telephone system or Internet, awireless communications medium or media, an optical communicationsmedium or media, a digital or analog communications medium or media, ora suitable combination of these or other communications media.

Consolidated web service 102 can include a request handler, an interfacemanager, a database abstraction layer, a database (such as for servicedata, user data, history data, update data, device data or othersuitable data), content service mapping and other suitablefunctionality. In one exemplary embodiment, the request handler canreceive requests from user devices and can manage responses to therequests (such as to track individual requests and addresses associatedwith the device that generated the requests). The interface manager cancontrol access to user API 116, content API 104, feedback API 106,update API 108 and device API 110 that may be required to respond torequest received from the user devices. The database abstraction layercan control access to the database, such as to prevent user data frombeing accessed by unauthorized personnel.

Content API 104 can interface with devices 112 a through 112 n and dataservices 114 a through 114 n through consolidated web service 102, orcan also or alternatively be implemented as a plurality of dedicatedcontent APIs that each interface with consolidated web service 102,devices 112 a through 112 n and one or more of data services 114 athrough 114 n. This architecture minimizes the need for data services114 a through 114 n to have customized software or algorithms foroperation within system 100.

In one exemplary embodiment, a device 112 a can interface with any ofdata services 114 a through 114 n through consolidated web service 102,user API 116, content API 104, feedback API 106 and update API 108. Inthis exemplary embodiment, a device having a user interface, such as atablet computer, can access a data service such as an audio data serviceprovider or video data service provider, using a single interface. Asdescribed in greater detail herein, a user can log onto an accounthosted by consolidated web service 102 using their tablet computer, canreceive a user interface that is optimized for the tablet computer, canselect a type of data for delivery to the tablet computer, and canreceive that data in a format that can be displayed on the tabletcomputer.

Devices 112 a through 112 n can include a client application thatprovides a client controller API, a consolidated web services controllerinterface, a consolidated web services query library and other suitableclient functionality. In one exemplary embodiment, the clientapplication can be obtained from a website (for a personal computer),from a smart phone or tablet application store, or from other suitablelocations. In another exemplary embodiment, the consolidated webservices query library can be a C++ library to consume the web services(communication layer), and the consolidated web services controllerinterface can be the data abstraction of the consolidated web servicescontroller responses for the client controller API.

In another exemplary embodiment, a user can log onto an account hostedby web service provider 102 using a smart phone and can receive a userinterface that allows the user to select a different device, such asstand alone speakers or a television set, to receive the selected datafrom the selected data service. In this exemplary embodiment, the usercan select a sound recording to be delivered to a stand alone speakers,a video recording to be delivered to a television set, or other suitabledata (text, images) to be delivered to other suitable devices (printers,copiers, fax machines). In this manner, system 100 allows a device suchas a smart phone, personal computer or tablet computer to operate as auniversal remote control device for a plurality of diverse devices, suchas speakers, stereo systems, televisions, printers, fax machines orcopiers.

FIG. 2 is a diagram of an algorithm 200 for providing consolidated dataservice delivery in accordance with an exemplary embodiment of thepresent disclosure. Algorithm 200 is an exemplary algorithm havingdisclosed data entry states, data processing states, and data outputstates, where one or more processing platforms operate under softwarecontrol to perform to perform the disclosed algorithmic functions.

Algorithm 2begins at 202, where a method call is received. As discussedin greater detail herein, the method call can include data in apredetermined data format having required data fields and optional datafields. By utilizing the architecture of system 100, the different APIscan utilize method calls that have common data fields that can bereadily translated for use by other APIs and other method calls, so asto provide the disclosed interoperability. The algorithm then proceedsto 204.

At 204, it is determined whether required data fields for the methodcall are present. As disclosed in greater detail herein, each methodcall can have one or more predetermined required data fields, such thatif a required data field is not present, then the method call isincomplete. The required data fields for a method call can be determinedby looking up an associated data table or other suitable data structuresassociated with the identifier for the method call, which can beincluded in a predetermined location within the method call data format.If it is determined at 204 that a required parameter is not present, thealgorithm proceeds to 206 where a suitable error message is generated.In one exemplary embodiment, the error message can generate a userdisplay that requests additional information, a selection (such as adevice selection or a data service selection), or other suitableinformation. In another exemplary embodiment, the error message can be aquery to consolidated web service 102, user API 116, content API 104,feedback API 106, update API 108 or other suitable systems or devices,where the response to the query can provide the missing parameter, orother suitable processes can also or alternatively be used.

If it is determined at 204 that all required parameters are present, thealgorithm proceeds to 208 where a call to a data service is formatted,such as using content API 104. In another exemplary embodiment, a callto user API 116, content API 104, feedback API 106, update API 108 orother suitable systems or devices can be generated, such as where a useris configuring their system or selection choices, or other suitablefunctions can also or alternatively be implemented. The algorithm thenproceeds to 210.

At 210, a call is transmitted to the data service and the response tothe call is received. In one exemplary embodiment, the call can includea request for a specific type of data (audio program, video program), alist of content (a list of artists or programs), or other suitable data.The algorithm then proceeds to 212, where it is determined whether theresponse included an error message. In one exemplary embodiment, theerror message can indicate that the data service is unavailable, thatthe user does not have authorization for the requested content, or othersuitable error messages. If it is determined that an error message hasbeen received, the algorithm proceeds to 214 where a suitable errormessage is generated. In one exemplary embodiment, the error message cangenerate a user display that requests additional information, aselection (such as a new program selection or a new device destination),or other suitable information. In another exemplary embodiment, theerror message can be a query to consolidated web service 102, user API116, content API 104, feedback API 106, update API 108 or other suitablesystems or devices, where the response to the query can provide themissing parameter, or other suitable processes can also or alternativelybe used. Otherwise, the algorithm proceeds to 216.

At 216, data is formatted for delivery to a device. In one exemplaryembodiment, the data can include a user interface, where the data isformatted to be used in a user interface template. In another exemplaryembodiment, the data can include audio data, video data, image data,text data or other suitable data that is formatted for delivery to aspeaker, a television, the display of a personal computer or tabletcomputer, or other suitable device. The algorithm then proceeds to 218,where the data is delivered to the device.

In operation, algorithm 200 allows diverse data services and devices tointerface through a common platform that includes consolidated webservice 102, user API 116, content API 104, feedback API 106 and updateAPI 108. Algorithm 200 can also or alternatively be implemented usingobject-oriented programming, where the different states disclosed aboveand in further detail below are related based on object-orientedprinciples. The various APIs and associated methods described below canbe used within the architecture of system 100 and with algorithm 200 toprovide the functionality discussed herein. In that regard, thediscussion of the APIs and associated methods that follows can beapplied to system 100 and algorithm 200, as well as to other suitablesystems and algorithms.

FIG. 3 is a diagram of an algorithm 300 for providing consolidated dataservice delivery for a user device in accordance with an exemplaryembodiment of the present disclosure. Algorithm 300 is an exemplaryalgorithm having disclosed data entry states, data processing states,and data output states, where one or more processing platforms operateunder software control to perform to perform the disclosed algorithmicfunctions.

Algorithm 300 begins at 302, where a consolidated web service is accessfrom a user device. In one exemplary embodiment, the user device mayhave an installed client system that operates to provide access to theconsolidated web service. In another exemplary embodiment, the userdevice can access a web site or other resource and can receive initialconfiguration for accessing the consolidated web service. Other suitableprocesses can also or alternatively be used, such as those described ingreater detail herein. The algorithm then proceeds to 304.

At 304, the device is determined. In one exemplary embodiment, thedevice can be determined using a suitable method as disclosed hereinfrom a machine id, such as where the device has an existing clientsystem. In another exemplary embodiment, the device can be determined byquerying the device or user for device type data. In yet anotherexemplary embodiment, the device can be determined for a peripheral thatis accessed from a user interface device. Other suitable methods orprocesses can also or alternatively be used. The algorithm then proceedsto 306.

At 306, a device API is accessed. In one exemplary embodiment, thedevice API can be device API 110 or other suitable device APIs. Thealgorithm then proceeds to 308.

At 308, it is determined whether an update for the device is available,needs to be installed, has been requested, or otherwise needs to beaccessed. In one exemplary embodiment, device API 110 methods can beexecuted. If it is determined that an update for the device exists, thealgorithm proceeds to 310, where the update is installed. In oneexemplary embodiment, an update API 108 method can be used to update thedevice or to perform other suitable functions as disclosed herein. Thealgorithm then proceeds to 312. Likewise, if it is determined at 308that no device update is available or required, the algorithm proceedsto 312.

At 312, a use API is accessed. In one exemplary embodiment, user API 116can be accessed, such as to authenticate a user or to perform othersuitable user API 116 methods as disclosed herein. The algorithm thenproceeds to 314.

At 314, the user logs on to the consolidated web service. In oneexemplary embodiment, a user authentication or logon method of user API116 can be implemented as disclosed herein. The algorithm then proceedsto 316.

At 316, a content API is accessed. In one exemplary embodiment, thecontent API can be content API 104 or other suitable content APIs, andone or more content API 104 methods as disclosed herein can beimplemented. The algorithm then proceeds to 318.

At 318, a user selection is received. In one exemplary embodiment, theuser selection can be a content selection, such as by using one or moreof the content API 104 methods as disclosed herein or other suitableuser selections. The algorithm then proceeds to 320.

At 320, it is determined whether an error has been generated. In oneexemplary embodiment, the error can be one of the errors disclosedherein that are generated in response to the content selection, such asby the content service, the content API, or other suitable systems. Ifit is determined that an error has been generated, the algorithmproceeds to 322, where an error message is generated. In one exemplaryembodiment, the error message can be generated for display on the userdevice, for review by an operator of system 100, or other suitable errormessages can be generated. The algorithm then returns to 318,terminates, or other suitable methods as disclosed herein or procedurescan be used.

If it is determined at 320 that no error has been generated, thealgorithm proceeds to 324, where data is formatted for the device. Inone exemplary embodiment, content data can be formatted for delivery tothe user device, such as by the content service. In other exemplaryembodiments, content data can be formatted for delivery to a peripheraldevice, data for a user interface display can be generated, or othersuitable data can be formatted that is responsive to the user selection.The algorithm then proceeds to 326.

At 326, data is delivered to the device. In one exemplary embodiment,the data can include audio or video content such as sound recordings,movies, television shows or other suitable audio or video content. Inanother exemplary embodiment, the data can include text data, imagedata, telephone message, facsimile transmissions, print jobs or othersuitable data. The algorithm then proceeds to 328.

At 328, it is determined whether feedback is required or has beengenerated. In one exemplary embodiment, feedback can include informationabout audio or video content that has been delivered. In anotherexemplary embodiment, feedback can include user entered feedback orother suitable data. If it is determined that feedback is required orhas been generated, the algorithm proceeds to 330 where a feedback APIis accessed. In one exemplary embodiment, feedback API 106 can be usedto implement an associated method as disclosed herein, or other suitablefeedback API methods or processes can be implemented. The algorithm thenproceeds to 332. Likewise, if it is determined at 328 that feedback hasnot been generated or is not required, the algorithm proceeds to 332.

At 332, it is determined whether the user has logged off, such as byselecting a logoff command or control, by timing out, or in othersuitable manners. If the user has logged off, the algorithm proceeds to334, otherwise, the algorithm returns to 318 or other suitable states.

In operation, algorithm 300 allows diverse data services and devices tointerface through a common platform that includes consolidated webservice 102, user API 116, content API 104, feedback API 106 and updateAPI 108. Algorithm 300 can also or alternatively be implemented usingobject-oriented programming, where the different states disclosed aboveand in further detail below are related based on object-orientedprinciples. The various APIs and associated methods described below canbe used within the architecture of system 100 and with algorithm 300 toprovide the functionality discussed herein. In that regard, thediscussion of the APIs and associated methods that follows can beapplied to system 100 and algorithm 300, as well as to other suitablesystems and algorithms.

Content providers have varying functions, parameters, return types andprocesses for communicating with other systems, such as Simple ObjectAccess Protocol (SOAP), eXtensible Markup Language Remote Procedure Call(XML RPC) and JavaScript Object Notation Remote Procedure Call (JSONRPC), and Relative Expression Software Tool (REST). In addition, contentproviders have varying methods of authenticating users that furthercomplicate web service implementation. Content API 104 provides auniform interface to these different protocols.

In one exemplary embodiment, content API 104 can allow a call to beexecuted across different data services 114 a through 114 n in a uniformfashion by using proxy calls through a content API REST Interface. RESTis an architectural style developed alongside HTTP, and can be utilizedfor client-server communication rather than building a layer on top ofclient-server communications, such as SOAP or XML-RPC. Other suitableinterfaces can also or alternatively be utilized.

Web service calls can vary between content providers, and a call fromone web service may have no basis for a call in another, or simply maynot exist. For example, a web service call to retrieve a list of toptracks would not make sense for a content provider that specializes inphotos. For this reason, such a call would result in a mapping errorthat could be handled appropriately. In situations where contentproviders offer similar services, the mapping error might not beapparent. The error system employed by content API 104 allows nonexistent calls to be properly handled, in addition to providing a meansfor investigating a content provider's web service.

CONTENT API METHODS. The following sections describe content API 104methods and parameters. Due to the open ended nature of content API 104,the responses from calls depend more on parameters passed than on themethod invoked. Below is a description of methods for content API 104and each method's available parameters. While some parameters are alwaysrequired, such as partner key, the intention of the request willdetermine which parameters are used and will vary from call to call.

Method Description Parameters get Retrieve an service, type, id, name,filter, item or a list context type, content id, context of items. name,language, country, key, signature, format, machine id search Search foran service, type, name, language, item. country, key, format, machine idadd Add an item. service, type, id, context name, language, country,key, format, machine id update Update an item. service, type, id,context name, language, country, key, format, machine id remove Removean item. service, type, id, context name, language, country, key,format, machine id

The parameters for content API 104 can have the followingcharacteristics.

Parameter Requirement Description Service required The service to query.type required The type requested, such as: album; artist; bookmark;comment; genre; image; link; list; location; mixed; photo; service;show; station; status; stream; tag; track; user; video. id not requiredThe id of an item. name not required The name of an item. filter notrequired The filter to apply to the query, such as: top; added; new;exclusive; popular; hot; buzz; favorite; picks; library; gallery;similar; schedule; discover; friends; parent; child; key; history;report; follower; following; featured; rated Context not required Thecontext type. Defines the type context of a query. For example toretrieve albums for an artist, the artist is the context type. Contextnot required The context id. Defines the id context of a query. Forexample to retrieve albums for an artist, the artist id or name Contextnot required The context name. Defines the name context of a query. Forexample to retrieve albums for an artist, the artist name is the contextname. start not required The start index for paging. count not requiredThe number of items to retrieve from beginning at ‘start’. language notrequired The language to use for the query. country not required Thecountry to use for the query. key required The key used to identify thepartner developer. signature required only A secure has algorithm (SHA1)for hash of the concatenation of authenticated method, parametersordered by key calls followed by the value, partner developer secret andsession key. format not required The response format, ‘xml’ or ‘json’.Default is ‘xml’. Machine not required The machine id. id value notrequired Used to set the value of a type, for example a rating, tag,comment. ac not required This is used for services that have autocomplete search capability.

USER API METHODS. User API 116 allows a partner developer to create andmanage profiles on behalf of the user. In addition to storing generalinformation about the user, the user profile manages multiple contentprovider credentials by employing a keychain model. User API 116 is usedfor accessing content provider user data such as a user's music library,playlists, favorites, friends or other suitable data.

Sharing and bookmarking can also be provided by User API 116. Users canbe allowed to create bookmarks and playlists to access relevant contentquickly and to share content. Unlike content API 104, which can be openended to accommodate various content providers, user API 116 can exposemethods and parameters more like a traditional web service.

Signatures can be used for user API 116 calls and calls that use asession key. A signature can be created without a session key (e.g. SHA1(method+ordered parameters+partner secret) or with a session key (e.g.SHA1 (method+ordered parameters+partner secret+session key). The SHA1output can be converted to hexadecimal format. The method used can bethe call method, for example “get” from content API 104 or “login” fromuser API 116. Ordered parameters can be a concatenation of eachparameter ordered by parameter key name followed by the parameter value.

The partner secret can be the private token given to a partner when thepartner key is received. The session key can be the token returned froma user authentication call such as register, login, get session andcreate session. The session key can be added to the signature when it isneeded to perform a call. The query library can automatically create andadd a signature to the query.

In one exemplary embodiment, four user API 116 methods can be used toreturn a session: 1) register; 2) login; 3) session; 4) session add. Thesession key can be a unique token that identifies the user when makingcalls to the web service. The session key can expire after apredetermined amount of time. In addition to the session key, acoordinated universal time (UTC) timestamp can be returned that marksthe session expiration. When the session has expired, it will no longerbe valid and a call must be made to retrieve a new session. This callcan be performed without prompting the user to login again, assuming theapplication has properly stored the user's web service username andauthorization token. The authorization token can be a SHA1 hash of theuser's web service password, which can be captured when the userperforms a login. The application does not need to store a plaintextpassword, as none of the functions require it apart from registration.

Below are descriptions of exemplary user API 116 methods. Some user API116 methods require https in this exemplary embodiment, and will resultin an error response if not secure. Other suitable embodiments that donot require https can also or alternatively be used.

The “register” method registers a user. On success, a new user will bereturned with a new session. Otherwise, an appropriate error isreturned. The HTTP Method for “register” is POST, and “register”requires https. POST is a request method supported by the HTTP protocolused by the World Wide Web, and can be used when the client needs tosend data to the server as part of the request, such as when uploading afile or submitting a completed form. In contrast to the GET requestmethod where only a URL and headers are sent to the server, POSTrequests also include a message body. This allows for arbitrary lengthdata of any type to be sent to the server. The parameters are:

Name Required Description Details username yes The user's Can be apredetermined username. number of characters in length, not casesensitive, and can consist of alphanumeric characters and specialsymbols. password yes The user's Can be a predetermined plaintext numberof characters in password. length, can contain at least on digit anduppercase letter, can contain punctuation. Email yes The user's Can be avalid email email address. address. First yes The user's name firstname. Last name yes The user's last name. address no The user's address.City no The user's city. State no The user's state. Zip code no Theuser's zip code. Area code no The user's area code. Phone no The user'sphone number. Language no The user's Can default to “en” if notlanguage. set. country no The user's Can default to “us” if not country.set. key yes The partner key. signature yes A signature for this call.

The “login” method is used to login a user. On success, login can returna user with the current valid session or a new session if the user'scurrent session has expired. Otherwise, login can return an appropriateerror. All pertinent user data can be returned by this call. The HTTPmethod for “login” is GET, and “login” requires https. The parametersare:

Name Required Description username yes The user's profile username. authyes The user's authorization token, such as an SHA1 hash of the user'spassword. key yes The partner key. signature yes A signature for thiscall.

The “logout” method is used to logout a user, and removes the user'scurrent session. The HTTP method for the “logout” method is GET, and theparameters are:

Name Required Description key yes The partner key. signature yes Asignature for this call.

The “update” method updates a user's profile information. On success,update will return a user. Otherwise, update will return the appropriateerror. The HTTP Method for “update” is POST, and “update requires https.The parameters are:

Name Required Description Details email no The user's email Can be avalid email address. address. First no The user's first name name. Lastname no The user's last name. address no The user's address. city no Theuser's city. state no The user's state. Zip code no The user's zip code.Area code no The user's area code. phone no The user's phone number.lang no The user's Can default to “en” language. if not set. country noThe user's country. Can default to “us” if not set. key yes The partnerkey. signature yes A signature for this call.

The “password update” method can update a user's password. On success,returns status OK. On fail returns status FAIL. The HTTP Method is POST,and the “password update” method can require https. The parameters are:

Name Required Description Details auth yes The SHA1 of the user'scurrent plaintext password. New yes The user's new Can be apredetermined password plaintext number of characters, password. cancontain at least one digit and uppercase letter. key yes The partnerkey. signature yes A signature for this call.

The “password reset” method resets a user's password. An email messagecan be sent with a temporary password. The HTTP method is POST, and itrequires https. The associated parameters are:

Name Required Description email yes The user's valid email. key yes Thepartner key. signature yes A signature for this call.

The “exists” method checks to determine whether a username is already inuse. The associated HTTP Method is GET, and the parameters are:

Name Required Description username yes A username to test. key yes Thepartner key. sig yes A signature for this call.

The “session” method can retrieve a user session. On success, thismethod will return the current valid session or a new session if theuser's current session has expired. Otherwise, the method will returnthe appropriate error. This method does not return user data. The HTTPMethod used is GET, https is required, and the parameters are:

Name Required Description username yes The user's profile username. authyes The user's auth token, can be an SHA1 hash of the user's password.key yes The partner key. signature yes A signature for this call.

The “session add” method creates a new user session. On success, thismethod will return a user with a new session. Otherwise, the method willreturn the appropriate error. This will overwrite the current sessionfor this user even if the current session is valid. The HTTP Method isGET, https is required, and the parameters are:

Name Required Description username yes The user's profile username. authyes The user's auth token, an SHA1 hash of the user's password can beused. key yes The partner key. signature yes A signature for this call.

The “services” method retrieves a user's content services. The HTTPMethod used is GET, and the parameters are:

Name Required Description key yes The partner key. signature yes Asignature for this call.

The “service add” method adds a content provider service. On success, auser is returned with an updated user services list. Otherwise, anappropriate error is returned. This method can be used where userauthentication is specified by username and password. The HTTP Method isPOST, https is required, and the parameters are:

Name Required Description service Yes The service to add. serviceusername Yes The user's service username. service password Yes Theuser's service password. service userid No The user's service id. keyYes The partner key. signature Yes A signature for this call.

The “service add” method adds a content provider service. On success, auser is returned with an updated user services list. Otherwise, anappropriate error is returned. This method can be used where userauthentication is specified. The HTTP Method is POST, https is required,and the parameters are:

Name Required Description. service Yes The service to add. oauth YesThis parameter can be set to 1. service username No The user's serviceusername. service password No The user's service password. key Yes Thepartner key. signature Yes A signature for this call.

The “service remove” method removes a content provider service. Onsuccess, a user is returned with an updated user services list.Otherwise, an appropriate error is returned. The HTTP Method is GET, andthe parameters are:

Name Required Description service yes The service to remove. key yes Thepartner key. signature yes A signature for this call.

Users can share resources using a web service sharing mechanism. The“share” method can get bookmark share with another user, the HTTP Methodis GET, and the parameters are:

Name Required Description id yes The bookmark share id. username no Theusername. key yes The partner key. signature yes A signature for thiscall.

The “shares” method gets user's bookmark shares based on differentcriteria. The HTTP Method is GET, and the parameters are:

Name Required Description username no The username to get shares fromuser no The service name service shared no This can be Boolean and setto 0 for shares shared by user (sent) and 1 for shares shared to user(received). key yes The partner key. signature yes A signature for thiscall.

The “share add” method can add bookmark share with another user. TheHTTP Method can be POST and the parameters are:

Name Required Description username yes The web service username who toshare to. user yes The user's service. service service yes The resourceservice. type yes The resource type id no The resource id, can berequired if name or filter are not set. name no The resource name, canbe required if id or filter are not set. filter no The resource filter,can be required if id or name are not set. Context no The resourcecontext type type cid no The resource context id. Context no Theresource context name. name key yes The partner key. signature yes Asignature for this call.

The “share remove” method removes a bookmark share. The HTTP Method isGET and the parameters are:

Name Required Description id yes The share id. key yes The partner key.signature yes A signature for this call.

The “shares remove” method removes bookmark shares based on differentcriteria. The HTTP Method used is GET, and the parameters are:

Name Required Description username no The username to remove shares fromUser no The service name. service shared no This can be Boolean and setto 0 for shares shared by user (sent) and 1 for shares shared to user(received). key yes The partner key. signature yes A signature for thiscall.

The “bookmark” method can get a bookmark that is specified by id. TheHTTP Method is GET and the parameters are:

Name Required Description id yes Bookmark id key yes The partner key.signature yes A signature for this call.

The “bookmarks” method returns all user's bookmarks. The HTTP Method isGET, and the parameters are:

Name Required Description start no The start index. count no The numberof items to return from start index. key yes The partner key. signatureyes A signature for this call.

The “bookmark add” method adds a bookmark. The HTTP Method is POST andthe parameters are:

Name Required Description service yes The service origin. type yes Thecontent type. id no The content id, can be required if name or filterare not set. name no The content name, can be required if id or filterare not set. filter no The content filter, can be required if id or nameare not set. Context no The content context type. type Context id no Thecontent context id. Context no The content context name. name key yesThe partner key. signature yes A signature for this call.

The “bookmark remove” method is used to remove a bookmark specified bythe id. The HTTP Method is GET, and the parameters are:

Name Required Description id yes Bookmark id key yes The partner key.signature yes A signature for this call.

The “bookmarks remove” method removes all user's bookmarks. The HTTPMethod is GET and the parameters are:

Name Required Description key yes The partner key. signature yes Asignature for this call.

The “playlist” method is used to get a user's playlist specified byplaylist id. The HTTP Method is GET and the parameters are:

Name Required Description pid yes Playlist id key yes The partner key.signature yes A signature for this call.

The “playlists” method gets all playlists for a user. The HTTP Method isGET and the parameters are:

Name Required Description start no The start index (default is 0). countno The number of playlists to return from start index (default is 10).key yes The partner key. Signature yes A signature for this call.

The “playlist add” method adds a playlist. The HTTP Method is POST, andthe parameters are:

Name Required Description name yes The playlist name. description no Theplaylist description. key yes The partner key. signature yes A signaturefor this call.

The “playlist remove” method removes a user's playlist. The HTTP Methodis GET, and the parameters are:

Name Required Description pid yes The playlist id. key yes The partnerkey. signature yes A signature for this call.

The “playlists remove” method removes all playlists for a user. The HTTPMethod is GET, and the parameters are:

Name Required Description key yes The partner key. Signature yes Asignature for this call.

The “playlist update” method updates a user playlist. The HTTP Method isPOST, and the parameters are:

Name Required Description pid yes The playlist id. name no The playlistname. description no The playlist description. order no A commaseparated list of playlist resource ids, defining the order. key yes Thepartner key. signature yes A signature for this call.

The “playlist resources” or “playlist tracks” methods are used to updatea user playlist. The HTTP Method is POST, and the parameters are:

Name Required Description pid yes The playlist id. start no The startindex. count no The number of items to return from start index. key yesThe partner key. signature yes A signature for this call.

The “playlist resource add” or “playlist track add” methods are used toadd a track resource to a playlist. The resource can be of type ‘track’.The HTTP Method is POST, and the parameters are:

Name Required Description pid yes The playlist id. service yes Theservice origin. type yes The content type, which can be set to track,albums, artists, or genres. id yes The content id. name yes The contentname. Context no The content context type. type Context no The contentcontext id. id Context no The content context name. name uri no Thecontent uri, which can be used for local content such as an UPnP URI andcan be URL encoded. details no A serialized string of key/value pairs,which can be used for local content where extra UPnP metadata is neededsuch as media server name, media server id. key yes The partner key.signature yes A signature for this call.

The “playlist resource remove” or “playlist track remove” methods can beused to remove a track resource from a playlist. The HTTP Method is GET,and the parameters are:

Name Required Description playlist resource id yes The playlist resourceid. key yes The partner key. sig yes A signature for this call.

The “device add” method can be used to register a user's device. Theparameters are:

Name Required Description Machine id yes Unique machine id. Model id yesThe model id. Current version no Installed device software version. Keyyes The partner key. Signature yes A signature for this call.

The “device” method is used to get required information for a user'sdevice, such as a model. The parameters are:

Name Required Description Machine id yes The user's device id. Key yesThe partner key. signature yes A signature for this call.

The “devices” method is used to get all registered user's devices. Theparameters are:

Name Required Description key yes The partner key. signature yes Asignature for this call.

The “device update” method is used to update information for user'sdevice. The parameters are:

Name Required Description Machine id yes Machine id version yesInstalled device software version. Key yes The partner key. signatureyes A signature for this call.

The “device remove” method is used to unregister a user's device. Theparameters are:

Name Required Description Machine id yes The user's device id. key yesThe partner key. signature yes A signature for this call.

The “devices remove” method is used to unregister all of a user'sdevices. The parameters are:

Name Required Description key yes The partner key. signature yes Asignature for this call.

The “queue all” method is used to obtain a list of queues which thecurrent user owns. The HTTP Method is GET and the associated parametersare:

Name Required Description key yes The partner key. signature yes Asignature for this call.

The “queue get” method is used to obtain queue metadata, such as forregistered users and queue owner to see the metadata. The HTTP Method isGET and the associated parameters are:

Name Required Description Queue id yes The queue id. Key yes The partnerkey. Signature yes A signature for this call.

The “queue add” method registers a queue to the current user, whobecomes the queue owner. The HTTP Method is GET and the associatedparameters are:

Name Required Description Machine id yes Unique machine id. Name no Thequeue name. description no The queue description. key yes The partnerkey. signature yes A signature for this call.

The “queue update” method updates queue metadata. Either the name ordescription can be set. The HTTP Method is GET and the associatedparameters are:

Name Required Description Queue id yes The queue id Name no The queuename. Description no The queue description. Key yes The partner key.Signature yes A signature for this call.

The “queue remove” method unregisters queue ownership for the currentuser. The HTTP Method is GET and the associated parameters are:

Name Required Description Queue id yes The queue id key yes The partnerkey. signature yes A signature for this call.

The “queue users” method provides a list of users registered to thequeue, such as where registered users are permitted to make this call.The HTTP Method is GET and the associated parameters are:

Name Required Description Queue id yes The queue id Key yes The partnerkey. Signature yes A signature for this call.

The “queue user add” method registers users to the queue, such as wherethe queue owner is registered when the queue is registered, where thequeue owner is permitted to make this call. The HTTP Method is GET andthe associated parameters are:

Name Required Description Queue id yes The queue id username yes Theuser's username Status no The user's status. Key yes The partner key.Signature yes A signature for this call.

The “queue user update” method updates the queue user status, such aswhere the queue owner is permitted to make this call. The HTTP Method isGET and the associated parameters are:

Name Required Description Queue id yes The queue id username yes Theuser's username Status yes The user's status. Key yes The partner key.signature yes A signature for this call.

The “queue user remove” method removes the user registration with thisqueue, such as where the queue owner is permitted to make this call. TheHTTP Method is GET and the associated parameters are:

Name Required Description Queue id yes The queue id username yes Theuser's username Key yes The partner key. Signature yes A signature forthis call.

The “queue items” method is used to list items in the queue, such aswhen the parameter username is passed, to return items in the queue forthis user, where registered users are permitted to make this call. TheHTTP Method is GET and the associated parameters are:

Name Required Description Queue id yes The queue id username no Theuser's username Start no The start index. Count no The number of itemsto return from start index. Key yes The partner key. Signature yes Asignature for this call.

The “queue items history” method is used to list items in the queuehistory, such as when the parameter username is passed to return itemsin the queue history for this user, where registered users are permittedto make this call. The HTTP Method is GET and the associated parametersare:

Name Required Description Queue id yes The queue id username no Theuser's username Start no The start index. Count no The number of itemsto return from start index. Key yes The partner key. signature yes Asignature for this call.

The “queue items waiting” method provides a list of items in waitingqueue, such as where every user has a separate waiting queue, and whenthe parameter username is passed it returns items in the waiting queuefor this user, where registered users are permitted to make this call.The HTTP Method is GET and the associated parameters are:

Name Required Description Queue id yes The queue id username no Theuser's username Start no The start index. Count no The number of itemsto return from start index. Key yes The partner key. signature yes Asignature for this call.

The “queue items remove” method removes items in the queue for thecurrent user. The HTTP Method is GET, and the associated parameters are:

Name Required Description Queue id yes The queue id Key yes The partnerkey. signature yes A signature for this call.

The “queue items waiting remove” method removes items in the waitingqueue for the current user. The HTTP Method is GET, and the associatedparameters are:

Name Required Description Queue id yes The queue id key yes The partnerkey. signature yes A signature for this call.

The “queue items all remove” method removes all items associated withthe queue for the current user. The HTTP Method is GET and theassociated parameters are:

Name Required Description Queue id yes The queue id Key yes The partnerkey. signature yes A signature for this call.

The “queue item head” method is used to obtain the head item of thequeue, such as where registered users are permitted to make this call.The HTTP Method is GET, and the associated parameters are:

Name Required Description Queue id yes The queue id Key yes The partnerkey. signature yes A signature for this call.

The “queue item head update” method updates the head item of the queue,such as where registered users are permitted to make this call. The HTTPMethod is GET, and the associated parameters are:

Name Required Description Queue id yes The queue id Status no The statusof the head queue item. progress no The progress of the head queue item.Key yes The partner key. signature yes A signature for this call.

The “queue item head rate” method rates the head item of the queue, suchas where registered users are permitted to make this call. The HTTPMethod is GET and the associated parameters are:

Name Required Description Queue id yes The queue id Value yes The ratingvalue. Key yes The partner key. signature yes A signature for this call.

The “queue item enqueue” tries to add item to the queue. If the queue isfull, it enqueues the item to the waiting queue, such as whereregistered users are permitted to make this call. The HTTP Method is GETand the associated parameters are:

Name Required Description Queue id yes The queue id resource yes Theresource string. key yes The partner key. signature yes A signature forthis call.

The “queue item dequeue” method dequeues the head item from the queue,such as where the queue owner is permitted to make this call. The HTTPMethod is GET and the associated parameters are:

Name Required Description Queue id yes The queue id Key yes The partnerkey. signature Yes A signature for this call.

The “queue item remove” method removes an item specified by queue itemid, such as where the user who submitted the item or the queue ownermakes the call. The HTTP Method is GET and the associated parametersare:

Name Required Description Queue id yes The queue id Key yes The partnerkey. signature yes A signature for this call.

FEEDBACK API METHODS. Feedback API 106 tracks user actions. In additionto providing data for user analytics, it also provides the basis foruser history and charts. The “track” method tracks a user action. If nouser is passed the action is tracked anonymously, and the associatedparameters include:

Name Required Description action yes The action being tracked. serviceyes The resource service. type yes The resource type id no The resourceid. Required if name or filter are not set. name no The resource name.Required if id or filter are not set. filter no The resource filter.Required if id or name are not set. Context no The context type. typeContext id no The context id. Context no The context name. name city noThe city. state no The state code. cc no The country code. country noThe country name. lat no The latitude. long no The longitude. key yesThe partner key.

The “history” method retrieves a user's history. Filters can be passedto focus the results. The parameters include:

Name Required Description action no An action to filter on. service no Aservice to filter on. type no A type to filter on. key yes The partnerkey. signature yes A signature for this call.

The “aggregate” method is a feedback aggregator with the followingparameters:

Name Required Description action no An action to aggregate by. cc noAggregate by country code. state no Aggregate by state. city noAggregate by city. start no A start date, used for focusing the dateresults. Required if end date is set. end date no An end date, used forfocusing the results. Required if start date is set. start no The startindex of the result. count no The number of items to return for theresult. key yes The partner key.

The “error add” method adds an error as a feedback, and has thefollowing parameters:

Name Required Description code yes Error code. Name yes Error name.Machine id no Device machine id. Can be anonymous Message no Errormessage. Trace back no Error traceback. Key yes The partner key.

The “error” method gets an error as specified by id, and has thefollowing parameters:

Name Required Description id Yes An action id. key Yes The partner key.

The “errors” method gets errors specified by different filters, and hasthe following parameters:

Name Required Description Machine no The machine id. id code no Theerror code. name no The error name. start no The start index of theresult. Default is 0 count no The number of items to return for theresult. Default is 10 start no A start date, used for focusing the dateresults. Required if end date is set. end date no An end date, used forfocusing the results. Required if start date is set. key yes The partnerkey.

DEVICE API METHODS. Device API 110 provides an interface for managingdata related to devices, such as a speaker, cell phone, iPod or iPad.The “model add” method adds a device model, and includes the followingparameters:

Name Required Description name yes Model name platform yes Modelplatform software and hardware Hardware yes Model release hardwareversion version Software yes Model release software version versionDescription no Model description Release date no Model release date

The “model” method gets model information specified by id, and has thefollowing parameters:

Name Required Description Model id Yes Model id

The “models” method gets all device models, and has the followingparameters:

Name Required Description platform no Model platform start no The startindex. count no The number of items to return from start index.

The “model remove” method is used to remove a device specified by an id,and has the following parameters:

Name Required Description Model id yes Model id

UPDATE API METHODS. Update API 108 provides methods for checking if anupdate exists for any device or application, including the download URLto the update, if one exists. For example, iOS application updates wouldlikely be downloaded via the Apple App Store, but Update API 108 canstill be used to check if the update is available and provide the iTunesURL. It also provides a method for adding an update for a device orapplication. The “check” method is used to check for an update for adevice or application. The HTTP Method used is GET, and the associatedparameters are:

Name Required Description Model id no The device model id. Model no Thedevice model alias. alias version yes The device or application softwareversion. key yes The partner key. signature yes A signature for thiscall.

Parameters for the “check” method by user device are:

Name Required Description Machine id no The machine id. Model id no Thedevice model id. Key yes The partner key. signature yes A signature forthis call.

ERRORS. Predetermined error codes are returned by the web service forerror response.

Errors related to the web service interface include:

Name Description Mapping Error The method or parameters cannot berecognized to create a valid request. User Agent Error Invalid useragent. Secure Request Request requires https. Error Interface Error Therequested interface cannot be found. Method Error The method is notavailable for this API. Service Not The requested service cannot befound. Found Error Type Error The requested type is invalid. Api KeyError The web service key is inactive or invalid. Partner Service Theservice requested is inactive or not Error valid for this partner.Signature Error Signature validation failed. Filter Error The requestedfilter was not recognized. Partner Not The partner cannot be found.Found Error

User Errors related to user account and services include:

Auth Error User authentication failed. Session Error Session validationfailed. Username Error Username validation failed. User Password ErrorPassword validation failed. User Email Validation Email validationfailed. Error User Exists Error User exists, user creation failed. UserNot Found Error User not found. User Email Exists Error User emailexists. User Password Reset Password update is required. Error UserUpdate Error An error occurred updating the user. User Add Error Anerror occurred adding the user. User Service Not Found The user has notregistered this Error service. User Device Error The error related touser device.

Errors related to request results include:

Service Call Error The service call failed. No Results Error No resultsfound for service call. Add Error Failed to add item. Remove ErrorFailed to remove item. Update Error Failed to update item.

Errors related to content services include:

Content Service General content service error. Error Content Auth ErrorGeneral content service authentication error Content Api Version Contentservice API version error Error Content Protocol Error related toconnection protocol Error Content Method Error Method is missing orinvalid Content Parameter Parameter is missing or invalid Error ContentLicense License is missing, invalid or expired Error Content PartnerContent service partner related error Error Content Max Limit Maximumlimit error Error Content Min Limit Minimum limit error Error Content AdError Ad related error Content Server Sync Server synchronization failedError Content Signature Content service invalid signature Error ContentUser Error General content service user error Content User Auth Contentservice user authentication Error error. Invalid combination of usernameand password Content User Content service user authorizationAuthorization Error error Content User Email Error related to user emailError Content Username Content service username is not set or Errorinvalid. Content Password Content service password is not set or Errorinvalid. Content User Not Content service user is not found Found ErrorContent User Exists Content service user already exists Error ContentUser Not Content service user is not active Active Error Content UserAccount User account related parameters are Error invalid Content DeviceError General content service device error Content Device Model Devicemodel already exists Exists Error Content Device Model Device model isinvalid Invalid Error Content Device Device is disabled Disabled ErrorContent Device Not Device is not found Found Error Content Device Devicealready exists Exists Error Content Stream Error General content servicestream error

In addition to the web service APIs, service specific APIs can also beused to provide optimized interface capability to specific services.Several exemplary service specific APIs are described below.

Service Alpha is a browser based application that supports Mac and PCcomputers and iPad devices.

The Service Alpha Service “content get” method tracks metadata specifiedby name, and the associated parameters include:

Parameter Value Required Description service Service Alpha yes Thecontent service name type Track yes name track name yes The track namekey partner key yes The partner key.

The Service Alpha Service “content get” method tracks metadata specifiedby id, and the associated parameters include:

Parameter Value Required Description service Service Alpha yes Thecontent service name type Track yes id track id yes The track id keypartner key yes The partner key.

The Service Alpha Service “content get track” method obtains a list ofall tracks, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Alpha type track yes start no The start index. count no Thenumber of items to return from start index. key partner yes The partnerkey. key

The Service Alpha Service “content get album track” method obtains alist of tracks specified by album name, and the associated parametersinclude:

Parameter Value Required Description service Service yes The contentservice name Alpha type track yes content album yes type context albumname yes The album name name start no The start index. count no Thenumber of items to return from start index. key partner yes The partnerkey. key

The Service Alpha Service “content get artist track” method obtains alist of tracks specified by artist name, and the associated parametersinclude:

Parameter Value Required Description service Service yes The contentservice name Alpha type track yes context artist yes type context artistyes The artist name name name start no The start index. count no Thenumber of items to return from start index. key partner yes The partnerkey. key

The Service Alpha Service “get genre track” method lists tracksspecified by genre name, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Alpha type track yes context genre yes type context genrename yes The genre name name start no The start index. count no Thenumber of items to return from start index. key partner yes The partnerkey. key

The Service Alpha Service “get album” method obtains album metadataspecified by name, and the associated parameters include:

Parameter Value Required Description service Service Alpha yes Thecontent service name type album yes name album name yes The album namekey partner key yes The partner key.

The Service Alpha Service “get album track id” method obtains albummetadata specified by track id, and the associated parameters include:

Parameter Value Required Description service Service Alpha yes Thecontent service name type Album yes context type Track yes cid track idyes The track id key partner key yes The partner key.

The Service Alpha Service “get album track name” method obtains a listof albums specified by track name, and the associated parametersinclude:

Parameter Value Required Description service Service Alpha yes Thecontent service name type Album yes context type Track yes context nametrack name yes The track name key partner key yes The partner key.

The Service Alpha Service “get artist albums” method obtains a list ofalbums specified by artist name, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Alpha type album yes context artist yes type context artistyes The artist name name name start no The start index. count no Thenumber of items to return from start index. key partner yes The partnerkey. key

The Service Alpha Service “get genre albums” method obtains a list ofalbums specified by genre name, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Alpha type album yes context genre yes type context genrename yes The genre name name start no The start index. count no Thenumber of items to return from start index. key partner yes The partnerkey. key

The Service Alpha Service “get artist” method obtains a list of artists,and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Alpha type artist yes start no The start index. count noThe number of items to return from start index. key partner yes Thepartner key. key

The Service Alpha Service “get genre” method obtains a list of allgenres, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Alpha type genre yes start no The start index. count no Thenumber of items to return from start index. key partner yes The partnerkey. key

In addition to these exemplary methods, other suitable methods can alsoor alternatively be used by applying the user API 116 methods, thecontent API 104 methods, the feedback API 106 methods, the update API108 methods and the device API 110 methods described herein.

Service Beta methods include the “add Service Beta service” method usesthe service username and service password parameters to add an existingaccount or anonymous account, and returns an updated user services list.The HTTP Method is POST, https is required, and the associatedparameters include:

Name Required Description service yes The service to add. oauth yes Thisparameter should be set to 1. service username no The user's serviceusername. service password no The user's service password. key yes Thepartner key. sig yes A signature for this call.

The Service Beta “get featured artists” method obtains a list offeatured artists, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Beta type artist yes filter featured yes start no The startindex. count no The number of items to return from start index. keypartner yes The partner key. key sig call sig yes The call signature.

The Service Beta “get artist station tracks” method obtains a list ofstation tracks specified by artist, and the associated parametersinclude:

Parameter Value Required Description service Service yes The contentservice name Beta type track yes context artist yes type cid artist idyes The artist id start no The start index. count no The number of itemsto return from start index. key partner yes The partner key. key sigcall sig yes The call signature.

The Service Beta “get current user station tracks” method obtains a listof station tracks specified by user, such as where user stations playsimilar tracks selected mostly from favorite tracks and artists andother personal data, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Beta type track yes context user yes type start no Thestart index. count no The number of items to return from start index.key partner yes The partner key. key sig call sig yes The callsignature.

The Service Beta “get personal station tracks” method obtains a list ofpersonal station tracks specified by user, such as where the personalstation is a station composed almost entirely of the user's favoritetracks, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Beta type track yes context user yes type cid user id yesThe user id filter favorite yes start no The start index. count no Thenumber of items to return from start index. key partner yes The partnerkey. key sig call sig yes The call signature.

The Service Beta “get picked station tracks” method obtains a list ofpicked station tracks specified by station, such as where the pickedstation contains selected tracks, and the associated parameters include:

Parameter Value Required Description service Service yes The contentservice name Beta type track yes context station yes type cid stationyes The picked station id id filter picks yes start no The start index.count no The number of items to return from start index. key partner yesThe partner key. key sig call sig yes The call signature.

In addition to these exemplary methods, other suitable methods can alsoor alternatively be used by applying the user API 116 methods, thecontent API 104 methods, the feedback API 106 methods, the update API108 methods and the device API 110 methods described herein, and asshown above for other services.

Service Prime Content API methods include the “add Service Primeservice” method, which adds a Service Prime service. On success, a useris returned with an updated user services list. Otherwise, anappropriate error is returned. The HTTP Method is POST, https isrequired, and the associated parameters include:

Name Required Description service yes The service to add. serviceusername yes The user's service username. service password yes Theuser's service password. key yes The partner key. sig yes A signaturefor this call.

The “Service Prime get station” method gets station metadata, and theassociated parameters include:

Parameter Value Required Description service Service Prime yes Thecontent service name type station yes id station id yes The station idkey partner key yes The partner key. sig call sig yes The callsignature.

In addition to these exemplary methods, other suitable methods can alsoor alternatively be used by applying the user API 116 methods, thecontent API 104 methods, the feedback API 106 methods, the update API108 methods and the device API 110 methods described herein, and asshown above for other services.

Service Gamma Content API methods include “add Service Gamma service,”which adds a Service Gamma service. On success, a URL is returned.Otherwise, an appropriate error is returned. The HTTP Method is POST,https is required, and the associated parameters include:

Name Required Description service yes The service to add. oauth yes Thisparameter should be set to 1. key yes The partner key. sig yes Asignature for this call.

The “Service Gamma get artist” method obtains a list of artists by id.The associated parameters include:

Parameter Value Required Description service Service Gamma yes Thecontent service name type artist yes id artist id yes The artist id. keypartner key yes The partner key.

In addition to these exemplary methods, other suitable methods can alsoor alternatively be used by applying the user API 116 methods, thecontent API 104 methods, the feedback API 106 methods, the update API108 methods and the device API 110 methods described herein, and asshown above for other services.

Service Delta Content API methods include the “add Service Deltaservice” method, which is used to add a Service Delta service. Onsuccess, a user is returned with an updated user services list.Otherwise, an appropriate error is returned. The HTTP Method is POST,https is required, and the associated parameters include:

Name Required Description service yes The service to add. serviceusername yes The user's service username. service password yes Theuser's service password. key yes The partner key. sig yes A signaturefor this call.

The Service Delta “get artist by id” method obtains artist metadataspecified by id, and the associated parameters include:

Parameter Value Required Description service Service Delta yes Thecontent service name type artist yes id artist id yes The artist id keypartner key yes The partner key.

In addition to these exemplary methods, other suitable methods can alsoor alternatively be used by applying the user API 116 methods, thecontent API 104 methods, the feedback API 106 methods, the update API108 methods and the device API 110 methods described herein, and asshown above for other services.

The Service Sigma Content API includes the “add Service Sigma service”method. On success, a user is returned with an updated user serviceslist. Otherwise, an appropriate error is returned. The HTTP Method isPOST, https is required, and the associated parameters include:

Name Required Description service yes The service to add. serviceusername yes The user's service username. service password yes Theuser's service password. key yes The partner key. sig yes A signaturefor this call.

The Service Sigma “get artist” method obtains artist metadata with listof albums, and the associated parameters include:

Parameter Value Required Description service Service Sigma yes Thecontent service name type artist yes id artist id yes The artist id keypartner key yes The partner key.

In addition to these exemplary methods, other suitable methods can alsoor alternatively be used by applying the user API 116 methods, thecontent API 104 methods, the feedback API 106 methods, the update API108 methods and the device API 110 methods described herein, and asshown above for other services.

The Service Tau Content API includes the “add Service Tau service”method, which adds a Service Tau service. On success, a user is returnedwith an updated user services list. Otherwise, an appropriate error isreturned. The HTTP Method is POST, https is required, and the associatedparameters include:

Name Required Description service yes The service to add. serviceusername yes The user's service username. service password yes Theuser's service password. key yes The partner key. sig yes A signaturefor this call.

The Service Tau “get root links” method is used to generate a userinterface front end. It returns list of links which can be later usedfor other methods to browse down the tree retrieving links, stations andshows, and the associated parameters include:

Parameter Value Required Description service Service Tau yes The contentservice name type link yes machine id machine id no The machine id. keypartner key yes The partner key.

It should be emphasized that the above described embodiments are merelyexamples of possible implementations. Many variations and modificationsmay be made to the above described embodiments without departing fromthe principles of the present disclosure. All such modifications andvariations are intended to be included herein within the scope of thisdisclosure and protected by the following claims.

What is claimed is:
 1. An apparatus for consolidated data servicescomprising: a plurality of devices coupled to communications media; aplurality of data services coupled to the communications media; acontent application programming interface (API) configured to providecontent from each of a plurality of data services to each of theplurality of devices using one or more of a plurality of content APImethods; a user API configured to provide user identification for eachof the plurality of devices using one or more of a plurality of user APImethods, wherein each of the user API methods includes a requiredsignature parameter; a feedback API configured to receive data from eachof the plurality of devices that identifies media content that wasdelivered to the plurality of devices using one or more of a pluralityof feedback API methods; a device API configured to provide a clientsystem to one or more of the plurality of devices using one or more of aplurality of device API methods; an update API configured to provide anupdated client system to one or more of the plurality of devices usingone more of a plurality of update API methods; and a web serviceconsolidator coupled to the content API, the user API, the feedback API,the device API and the update API, and to a plurality of data servicesand the plurality of devices through the communications media, the webservice consolidator configured to control interactions between thecontent API, the user API, the feedback API, the device API, the updateAPI, a plurality of data services and the plurality of devices.
 2. Theapparatus of claim 1 wherein the content API methods each have one ormore associated parameters and comprise a get method, a search method,an add method, an update method and a remove method.
 3. The apparatus ofclaim 1 wherein the user API methods each have one or more associatedparameters and comprise a register method, a login method, a logoutmethod, an update password method, a reset password method, an existsmethod, a get session method, a create session method, a get servicemethod, an add service method, an add content provider service method, aremove service method, a get share method, a get shares method, an addshare method, a remove share method, a remove shares method, a getbookmark method, a get bookmarks method, an add bookmark method, aremove bookmark method, a remove bookmarks method, a get playlistmethod, a get playlists method, an add playlist method, a removeplaylist method, a remove playlists method, an update playlist method, aget playlist resource method, an add playlist resource method, a removeplaylist resource method, a register device method, a register devicesmethod, a get device method, an update device method, an unregisterdevice method and unregister devices method.
 4. The apparatus of claim 1wherein the feedback API methods each have one or more associatedparameters and comprise a track method, a history method, an aggregatemethod, an add error method, a get error method and a get errors method.5. The apparatus of claim 1 wherein the device API methods each have oneor more associated parameters and comprise an add model method, a getmodel method, a get models method and a remove model method.
 6. Theapparatus of claim 1 wherein the update API methods each have one ormore associated parameters and comprise a check for update method. 7.The apparatus of claim 1 wherein the user API methods each have one ormore associated parameters and comprise a get all queues method, aregister queue method, an update queue method, an unregister queuemethod, a get queue user method, a register queue user method, an updatequeue user method, an unregister queue user method, a get queue itemsmethod, a get history items method, a get waiting items method, a removequeue items method, a remove waiting items method, a remove all itemsmethod, a remove queue head item method, an update head item method, arate head item method, an enqueue item method, a dequeue item method anda remove item method.
 8. A method for providing consolidated dataservices comprising: receiving a user logon request at a user API usingone or more user API methods, wherein the user logon request includes arequired partner key parameter and a required signature parameter;determining whether required parameters are present in the user logonrequest; generating an error message if one or more required parameteris not present; determining whether a device associated with the userlogon request is a registered device using a device method of the userAPI, wherein the device method includes a device id parameter, a partnerkey parameter and a signature parameter; registering the device using adevice add method of the user API if the device is not a registereddevice, wherein the device add method includes a machine id parameter, amodel id parameter, an installed device software version parameter, apartner key parameter and a signature parameter; receiving a contentservice selection for one of a plurality of content services using atype parameter and a key parameter; and logging the user onto theselected content service using stored user logon data for the selectedcontent service.
 9. The method of claim 8 comprising, prior to receivinga logon request, using a register method of the user API to register auser, the register method includes a username parameter, a passwordparameter, an email address parameter, a first name parameter, a lastname parameter, a partner key parameter and a signature parameter. 10.The method of claim 8 comprising using an update method of the user APIto update a user profile, the update method includes a key parameter anda signature parameter.
 11. The method of claim 8 comprising using apassword update method of the user API to update a user password, thepassword update method includes an authorization parameter, a newpassword parameter, a partner key parameter and a signature parameter.12. The method of claim 8 comprising using a session method of the userAPI to retrieve a user session, the sessions method including a usernameparameter, an authorization token parameter, a partner key parameter anda signature parameter.
 13. The method of claim 8 comprising using asession add method of the user API to create a new user session, thesession add method including a username parameter, an authorizationparameter, a partner key parameter and a signature parameter.
 14. Themethod of claim 8 comprising using a services method of the user API toretrieve user content services, the services method including a partnerkey parameter and a signature parameter.
 15. The method of claim 8comprising using a service add method of the user API to add a contentprovider service, the service add method including a service parameter,a service username parameter, a service password parameter, a partnerkey parameter and a signature parameter.
 16. The method of claim 8comprising using a share method of the user API to share resources witha second user, the share method including a bookmark share id parameter,a partner key parameter and a signature parameter.
 17. The method ofclaim 8 comprising using a share add method of the user API to addbookmark share with a second user, the share add method including ausername parameter, a user service parameter, a resource serviceparameter, a resource type parameter a partner key parameter and asignature parameter.
 18. The method of claim 8 comprising using aplaylist resource add method of a user API to add a track resource to aplaylist, the playlist resource add method including a playlist idparameter, a service parameter, a content type parameter, a content idparameter, a content name parameter, a partner key parameter and asignature parameter.